package j2025.j05;

/**
 * @Author 猫大仙
 */
public class j0519
{

    public int[] searchRange(int[] nums, int target) {
        if (nums.length == 0) return new int[]{-1, -1};
        int left = 0, right = nums.length - 1;
        int[] ret = new int[2];
        while(left<right){
            int mid = left + (right - left)/2;
            if(nums[mid]<target){
                left = mid + 1;
            }else {
                right = mid;
            }
        }
        if(nums[left]==target){
            ret[0] = left;
        }else {
            ret[0] = -1;
        }
        left = 0; right = nums.length - 1;
        while(left<right){
            int mid = left + (right - left+1)/2;
            if(nums[mid]>target){
                right = mid - 1;
            }else {
                left = mid;
            }
        }
        if(nums[right]==target){
            ret[1] = right;
        }else {
            ret[1] = -1;
        }
        return ret;
    }
    public int search(int[] nums, int target) {
        if(nums.length==0) return -1;
        if(nums.length==1) return nums[0]==target?0:-1;
        int left=0,right=nums.length-1;
        while(left<=right){
            int mid = left+(right-left)/2;
            if(nums[mid]==target){
                return mid;
            }
            if(nums[0]<=nums[mid]){
                if(nums[0]<=target && target<nums[mid]){
                    right=mid-1;
                }else {
                    left=mid+1;
                }
            }else{
                if(nums[mid]<target && target<=nums[right]){
                    left=mid+1;
                }else {
                    right=mid-1;
                }
            }
        }
        return -1;
    }
}
